const {get, post, put, del} = require('../../utils/request.js')


/**
 * 发布贴子
 * @returns {*}
 */
export function publishPostApi(data) {
    return post('/api/post/publish', data)
}


/**
 * 获取我的圈子数据
 * @returns {Promise}
 */
export function getMyPostListApi() {
    return get('/api/post/my')
}

/**
 * 获取所有圈子数据
 * @returns {Promise}
 */
export function getAllPostListApi(params) {
    return get('/api/post/page', params)
}

/**
 * 点赞帖子
 * @param {string} id 帖子ID
 * @returns {Promise}
 */
export function likePostApi(id) {
    return post(`/api/post/${id}/like`)
}

/**
 * 取消点赞帖子
 * @param {string} id 帖子ID
 * @returns {Promise}
 */
export function unlikePostApi(id) {
    return del(`/api/post/${id}/like`)
}

/**
 * 获取推荐圈子数据
 * @returns {Promise}
 */
export function getRecommendPostListApi() {
    return get('/api/post/recommend')
}

/**
 * 获取我的圈子详情
 * @param {string} id 圈子ID
 * @returns {Promise}
 */
export function getMyCircleDetailApi(id) {
    return get(`/api/post/${id}`)
}

/**
 * 更新圈子数据
 * @param {Object} data 圈子数据
 * @returns {Promise}
 */
export function updateCircleDataApi(data) {
    return put('/api/post', data)
}

/**
 * 删除圈子
 * @param {string} id 圈子ID
 * @returns {Promise}
 */
export function deletePostApi(id) {
    return del(`/api/post/${id}`)
}

/**
 * 获取帖子详情
 * @param {string} id 帖子ID
 * @returns {Promise}
 */
export function getPostDetailApi(id) {
    return get(`/api/post/${id}`)
}

/**
 * 获取某个帖子下的评论列表
 * @param {string} postId 帖子ID
 * @param {number} pageNumber 页码
 * @param {number} pageSize 每页数量
 * @returns {Promise}
 */
export function getCommentsByPostIdApi(data) {
    return get('/api/post-comment/page', data);
}

/**
 * 发布评论
 * @param {Object} commentData 评论数据
 * @returns {Promise}
 */
export function addCommentApi(commentData) {
    return post('/api/post-comment', commentData);
}

/**
 * 回复评论
 * @param {Object} replyCommentData 回复评论数据，包含 content, postId, userId
 * @param {string} parentId 父评论ID
 * @param {string} replyUserId 被回复用户ID (可选)
 * @returns {Promise}
 */
export function addReplyCommentApi(replyCommentData, parentId, replyUserId) {
    let url = `/api/post-comment/reply?parentId=${parentId}`;
    if (replyUserId) {
        url += `&replyUserId=${replyUserId}`;
    }
    return post(url, replyCommentData);
}

/**
 * 点赞评论
 * @param {string} commentId 评论ID
 * @param {string} userId 用户ID
 * @returns {Promise}
 */
export function likeCommentApi(commentId, userId) {
    return post(`/api/post-comment-like/like?commentId=${commentId}&userId=${userId}`)
}

/**
 * 取消点赞评论
 * @param {string} commentId 评论ID
 * @param {string} userId 用户ID
 * @returns {Promise}
 */
export function unlikeCommentApi(commentId, userId) {
    return post(`/api/post-comment-like/unlike?commentId=${commentId}&userId=${userId}`)
}

/**
 * 检查用户是否已点赞评论
 * @param {string} commentId 评论ID
 * @param {string} userId 用户ID
 * @returns {Promise<boolean>}
 */
export function isLikedCommentApi(commentId, userId) {
    return get('/api/post-comment-like/is-liked', { commentId, userId });
}
